
  var bufferView;
  var base64ReverseLookup = new Uint8Array(123/*'z'+1*/);
  for (var i = 25; i >= 0; --i) {
    base64ReverseLookup[48+i] = 52+i; // '0-9'
    base64ReverseLookup[65+i] = i; // 'A-Z'
    base64ReverseLookup[97+i] = 26+i; // 'a-z'
  }
  base64ReverseLookup[43] = 62; // '+'
  base64ReverseLookup[47] = 63; // '/'
  /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */
  function base64DecodeToExistingUint8Array(uint8Array, offset, b64) {
    var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2) - (b64[bLength-2] == '=') - (b64[bLength-1] == '=');
    for (; i < bLength; i += 4) {
      b1 = base64ReverseLookup[b64.charCodeAt(i+1)];
      b2 = base64ReverseLookup[b64.charCodeAt(i+2)];
      uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4;
      if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2;
      if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)];
    }
  }
function initActiveSegments(imports) {
  base64DecodeToExistingUint8Array(bufferView, 1024, "EGQAAA==");
}

  var scratchBuffer = new ArrayBuffer(16);
  var i32ScratchView = new Int32Array(scratchBuffer);
  var f32ScratchView = new Float32Array(scratchBuffer);
  var f64ScratchView = new Float64Array(scratchBuffer);
  
  function wasm2js_scratch_store_i32(index, value) {
    i32ScratchView[index] = value;
  }
      
  function wasm2js_scratch_load_f32() {
    return f32ScratchView[2];
  }
      
function asmFunc(env) {
 var buffer = new ArrayBuffer(65536);
 var HEAP8 = new Int8Array(buffer);
 var HEAP16 = new Int16Array(buffer);
 var HEAP32 = new Int32Array(buffer);
 var HEAPU8 = new Uint8Array(buffer);
 var HEAPU16 = new Uint16Array(buffer);
 var HEAPU32 = new Uint32Array(buffer);
 var HEAPF32 = new Float32Array(buffer);
 var HEAPF64 = new Float64Array(buffer);
 var Math_imul = Math.imul;
 var Math_fround = Math.fround;
 var Math_abs = Math.abs;
 var Math_clz32 = Math.clz32;
 var Math_min = Math.min;
 var Math_max = Math.max;
 var Math_floor = Math.floor;
 var Math_ceil = Math.ceil;
 var Math_trunc = Math.trunc;
 var Math_sqrt = Math.sqrt;
 var abort = env.abort;
 var nan = NaN;
 var infinity = Infinity;
 var global$0 = 25616;
 function $0() {
  
 }
 
 function $1($0_1, $1_1, $2_1, $3_1, $4_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  $3_1 = $3_1 | 0;
  $4_1 = $4_1 | 0;
  var $19 = 0, $18 = 0, $20 = 0, $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $59 = 0, $8_1 = 0, $16 = 0, $17 = 0, $10 = 0, $11 = 0, $7_1 = 0, $15 = 0, $60 = 0, $61 = 0, $5_1 = 0, $14 = 0, $9_1 = 0, $12 = 0, $13 = 0, $112 = 0, $128 = 0, $143 = 0, $157 = 0, $173 = 0, $188 = 0, $203 = 0, $217 = 0, $233 = 0, $248 = 0, $263 = 0, $277 = 0, $293 = 0, $308 = 0, $323 = 0, $329 = 0, $337 = 0, $352 = 0, $367 = 0, $383 = 0, $397 = 0, $413 = 0, $427 = 0, $443 = 0, $457 = 0, $473 = 0, $487 = 0, $503 = 0, $517 = 0, $533 = 0, $547 = 0, $563 = 0, $569 = 0, $577 = 0, $587 = 0, $592 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
  $5_1 = global$0 - 8704 | 0;
  global$0 = $5_1;
  $6_1 = -2;
  label$1 : {
   if (($2_1 + 1 | 0) >>> 0 > $4_1 >>> 0) {
    break label$1
   }
   $6_1 = -1;
   if ((HEAPU8[$3_1 >> 0] | 0 | 0) != (160 | 0)) {
    break label$1
   }
   $7_1 = $3_1 + $4_1 | 0;
   $8_1 = $8($5_1 | 0, $7_1 - $2_1 | 0 | 0, $2_1 | 0) | 0;
   $6_1 = ((8192 >>> 0) / ($2_1 >>> 0) | 0) & 16368 | 0;
   $9_1 = $6_1 >>> 0 < 256 >>> 0 ? $6_1 : 256;
   $4_1 = $3_1 + 1 | 0;
   $10 = 0;
   label$2 : {
    label$3 : while (1) {
     if ($10 >>> 0 >= $1_1 >>> 0) {
      break label$2
     }
     $11 = ($10 + $9_1 | 0) >>> 0 < $1_1 >>> 0 ? $9_1 : $1_1 - $10 | 0;
     label$4 : {
      label$5 : {
       if (!$2_1) {
        break label$5
       }
       $6_1 = $11 + 15 | 0;
       $12 = $6_1 & -16 | 0;
       $13 = (($6_1 >>> 4 | 0) + 3 | 0) >>> 2 | 0;
       $14 = $8_1 + 256 | 0;
       $15 = 0;
       $16 = $4_1;
       label$6 : while (1) {
        label$7 : {
         if (($7_1 - $16 | 0) >>> 0 >= $13 >>> 0) {
          break label$7
         }
         $4_1 = 0;
         break label$4;
        }
        $4_1 = $16 + $13 | 0;
        label$8 : {
         if (!$12) {
          break label$8
         }
         $17 = 0;
         $3_1 = 0;
         label$9 : while (1) {
          label$10 : {
           if (($7_1 - $4_1 | 0) >>> 0 >= 24 >>> 0) {
            break label$10
           }
           $4_1 = 0;
           break label$4;
          }
          $6_1 = ($8_1 + 8448 | 0) + $3_1 | 0;
          label$11 : {
           label$12 : {
            switch (((HEAPU8[($16 + ($3_1 >>> 6 | 0) | 0) >> 0] | 0) >>> ($17 & 6 | 0) | 0) & 3 | 0 | 0) {
            default:
             i64toi32_i32$1 = $6_1;
             i64toi32_i32$0 = 0;
             HEAP32[$6_1 >> 2] = 0;
             HEAP32[($6_1 + 4 | 0) >> 2] = i64toi32_i32$0;
             i64toi32_i32$1 = $6_1 + 8 | 0;
             i64toi32_i32$0 = 0;
             HEAP32[i64toi32_i32$1 >> 2] = 0;
             HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
             break label$11;
            case 1:
             $18 = HEAPU8[$4_1 >> 0] | 0;
             $19 = $18 >>> 6 | 0;
             $112 = $19;
             $19 = ($19 | 0) == (3 | 0);
             HEAP8[$6_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($4_1 + 4 | 0) >> 0] | 0, wasm2js_i32$1 = $112, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = ($4_1 + 4 | 0) + $19 | 0;
             $20 = ($18 >>> 4 | 0) & 3 | 0;
             $128 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 1 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $128, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $20 = ($18 >>> 2 | 0) & 3 | 0;
             $143 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $143, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $18 = $18 & 3 | 0;
             $157 = $18;
             $18 = ($18 | 0) == (3 | 0);
             HEAP8[($6_1 + 3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $157, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $18 | 0;
             $18 = HEAPU8[($4_1 + 1 | 0) >> 0] | 0;
             $20 = $18 >>> 6 | 0;
             $173 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $173, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $20 = ($18 >>> 4 | 0) & 3 | 0;
             $188 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $188, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $20 = ($18 >>> 2 | 0) & 3 | 0;
             $203 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $203, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $18 = $18 & 3 | 0;
             $217 = $18;
             $18 = ($18 | 0) == (3 | 0);
             HEAP8[($6_1 + 7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $217, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $18 | 0;
             $18 = HEAPU8[($4_1 + 2 | 0) >> 0] | 0;
             $20 = $18 >>> 6 | 0;
             $233 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $233, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $20 = ($18 >>> 4 | 0) & 3 | 0;
             $248 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $248, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $20 = ($18 >>> 2 | 0) & 3 | 0;
             $263 = $20;
             $20 = ($20 | 0) == (3 | 0);
             HEAP8[($6_1 + 10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $263, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = $19 + $20 | 0;
             $18 = $18 & 3 | 0;
             $277 = $18;
             $18 = ($18 | 0) == (3 | 0);
             HEAP8[($6_1 + 11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $277, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $19 + $18 | 0;
             $4_1 = HEAPU8[($4_1 + 3 | 0) >> 0] | 0;
             $19 = $4_1 >>> 6 | 0;
             $293 = $19;
             $19 = ($19 | 0) == (3 | 0);
             HEAP8[($6_1 + 12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $293, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = ($4_1 >>> 4 | 0) & 3 | 0;
             $308 = $19;
             $19 = ($19 | 0) == (3 | 0);
             HEAP8[($6_1 + 13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $308, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = ($4_1 >>> 2 | 0) & 3 | 0;
             $323 = $19;
             $19 = ($19 | 0) == (3 | 0);
             HEAP8[($6_1 + 14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $323, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $329 = $6_1 + 15 | 0;
             $6_1 = $18 + $19 | 0;
             $4_1 = $4_1 & 3 | 0;
             $337 = $4_1;
             $4_1 = ($4_1 | 0) == (3 | 0);
             HEAP8[$329 >> 0] = (wasm2js_i32$0 = HEAPU8[$6_1 >> 0] | 0, wasm2js_i32$1 = $337, wasm2js_i32$2 = $4_1, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $4_1 = $6_1 + $4_1 | 0;
             break label$11;
            case 2:
             $18 = HEAPU8[$4_1 >> 0] | 0;
             $19 = $18 >>> 4 | 0;
             $352 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[$6_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($4_1 + 8 | 0) >> 0] | 0, wasm2js_i32$1 = $352, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $19 = ($4_1 + 8 | 0) + $19 | 0;
             $18 = $18 & 15 | 0;
             $367 = $18;
             $18 = ($18 | 0) == (15 | 0);
             HEAP8[($6_1 + 1 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $367, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $19 + $18 | 0;
             $19 = HEAPU8[($4_1 + 1 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $383 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $383, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $397 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $397, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = HEAPU8[($4_1 + 2 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $413 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $413, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $427 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $427, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = HEAPU8[($4_1 + 3 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $443 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $443, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $457 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $457, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = HEAPU8[($4_1 + 4 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $473 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $473, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $487 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $487, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = HEAPU8[($4_1 + 5 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $503 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $503, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $517 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $517, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $19 = HEAPU8[($4_1 + 6 | 0) >> 0] | 0;
             $20 = $19 >>> 4 | 0;
             $533 = $20;
             $20 = ($20 | 0) == (15 | 0);
             HEAP8[($6_1 + 12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $533, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $20 | 0;
             $19 = $19 & 15 | 0;
             $547 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $547, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $18 = $18 + $19 | 0;
             $4_1 = HEAPU8[($4_1 + 7 | 0) >> 0] | 0;
             $19 = $4_1 >>> 4 | 0;
             $563 = $19;
             $19 = ($19 | 0) == (15 | 0);
             HEAP8[($6_1 + 14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$18 >> 0] | 0, wasm2js_i32$1 = $563, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $569 = $6_1 + 15 | 0;
             $6_1 = $18 + $19 | 0;
             $4_1 = $4_1 & 15 | 0;
             $577 = $4_1;
             $4_1 = ($4_1 | 0) == (15 | 0);
             HEAP8[$569 >> 0] = (wasm2js_i32$0 = HEAPU8[$6_1 >> 0] | 0, wasm2js_i32$1 = $577, wasm2js_i32$2 = $4_1, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
             $4_1 = $6_1 + $4_1 | 0;
             break label$11;
            case 3:
             break label$12;
            };
           }
           i64toi32_i32$0 = HEAPU8[$4_1 >> 0] | 0 | ((HEAPU8[($4_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($4_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($4_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
           i64toi32_i32$1 = HEAPU8[($4_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($4_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($4_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($4_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
           $587 = i64toi32_i32$0;
           i64toi32_i32$0 = $6_1;
           $60 = $587;
           HEAP8[$6_1 >> 0] = $60;
           HEAP8[($6_1 + 1 | 0) >> 0] = $60 >>> 8 | 0;
           HEAP8[($6_1 + 2 | 0) >> 0] = $60 >>> 16 | 0;
           HEAP8[($6_1 + 3 | 0) >> 0] = $60 >>> 24 | 0;
           HEAP8[($6_1 + 4 | 0) >> 0] = i64toi32_i32$1;
           HEAP8[($6_1 + 5 | 0) >> 0] = i64toi32_i32$1 >>> 8 | 0;
           HEAP8[($6_1 + 6 | 0) >> 0] = i64toi32_i32$1 >>> 16 | 0;
           HEAP8[($6_1 + 7 | 0) >> 0] = i64toi32_i32$1 >>> 24 | 0;
           $59 = $4_1 + 8 | 0;
           i64toi32_i32$1 = HEAPU8[$59 >> 0] | 0 | ((HEAPU8[($59 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($59 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($59 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
           i64toi32_i32$0 = HEAPU8[($59 + 4 | 0) >> 0] | 0 | ((HEAPU8[($59 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($59 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($59 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
           $592 = i64toi32_i32$1;
           i64toi32_i32$1 = $6_1 + 8 | 0;
           $61 = $592;
           HEAP8[i64toi32_i32$1 >> 0] = $61;
           HEAP8[(i64toi32_i32$1 + 1 | 0) >> 0] = $61 >>> 8 | 0;
           HEAP8[(i64toi32_i32$1 + 2 | 0) >> 0] = $61 >>> 16 | 0;
           HEAP8[(i64toi32_i32$1 + 3 | 0) >> 0] = $61 >>> 24 | 0;
           HEAP8[(i64toi32_i32$1 + 4 | 0) >> 0] = i64toi32_i32$0;
           HEAP8[(i64toi32_i32$1 + 5 | 0) >> 0] = i64toi32_i32$0 >>> 8 | 0;
           HEAP8[(i64toi32_i32$1 + 6 | 0) >> 0] = i64toi32_i32$0 >>> 16 | 0;
           HEAP8[(i64toi32_i32$1 + 7 | 0) >> 0] = i64toi32_i32$0 >>> 24 | 0;
           $4_1 = $4_1 + 16 | 0;
          }
          $17 = $17 + 2 | 0;
          $3_1 = $3_1 + 16 | 0;
          if ($3_1 >>> 0 < $12 >>> 0) {
           continue label$9
          }
          break label$9;
         };
        }
        label$16 : {
         if ($4_1) {
          break label$16
         }
         $4_1 = 0;
         break label$4;
        }
        label$17 : {
         if (!$11) {
          break label$17
         }
         $17 = HEAPU8[($8_1 + $15 | 0) >> 0] | 0;
         $6_1 = 0;
         $3_1 = $14;
         label$18 : while (1) {
          $16 = HEAPU8[(($8_1 + 8448 | 0) + $6_1 | 0) >> 0] | 0;
          $17 = (($16 >>> 1 | 0) ^ (0 - ($16 & 1 | 0) | 0) | 0) + $17 | 0;
          HEAP8[$3_1 >> 0] = $17;
          $3_1 = $3_1 + $2_1 | 0;
          $6_1 = $6_1 + 1 | 0;
          if (($6_1 | 0) != ($11 | 0)) {
           continue label$18
          }
          break label$18;
         };
        }
        $14 = $14 + 1 | 0;
        $16 = $4_1;
        $15 = $15 + 1 | 0;
        if (($15 | 0) != ($2_1 | 0)) {
         continue label$6
        }
        break label$6;
       };
      }
      $8($0_1 + Math_imul($10, $2_1) | 0 | 0, $8_1 + 256 | 0 | 0, Math_imul($11, $2_1) | 0) | 0;
      $8($8_1 | 0, ($8_1 + 256 | 0) + Math_imul($11 + -1 | 0, $2_1) | 0 | 0, $2_1 | 0) | 0;
     }
     $10 = ($4_1 ? $11 : 0) + $10 | 0;
     if ($4_1) {
      continue label$3
     }
     break label$3;
    };
    $6_1 = -2;
    break label$1;
   }
   $6_1 = ($7_1 - $4_1 | 0 | 0) == (($2_1 >>> 0 > 32 >>> 0 ? $2_1 : 32) | 0) ? 0 : -3;
  }
  global$0 = $5_1 + 8704 | 0;
  return $6_1 | 0;
 }
 
 function $2($0_1, $1_1, $2_1, $3_1, $4_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  $3_1 = $3_1 | 0;
  $4_1 = $4_1 | 0;
  var $7_1 = 0, $11 = 0, $15 = 0, $19 = 0, $5_1 = 0, $16 = 0, $6_1 = 0, i64toi32_i32$1 = 0, $20 = 0, $13 = 0, $17 = 0, $9_1 = 0, i64toi32_i32$0 = 0, $18 = 0, $8_1 = 0, $10 = 0, $14 = 0, $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
  $5_1 = global$0 - 192 | 0;
  global$0 = $5_1;
  $6_1 = -2;
  label$1 : {
   $7_1 = ($1_1 >>> 0) / (3 >>> 0) | 0;
   if (($7_1 + 17 | 0) >>> 0 > $4_1 >>> 0) {
    break label$1
   }
   $6_1 = -1;
   $8_1 = HEAPU8[$3_1 >> 0] | 0;
   if (($8_1 & 240 | 0 | 0) != (224 | 0)) {
    break label$1
   }
   $9_1 = $8_1 & 15 | 0;
   if ($9_1 >>> 0 > 1 >>> 0) {
    break label$1
   }
   $9($5_1 + 64 | 0 | 0, 255 | 0, 128 | 0) | 0;
   i64toi32_i32$1 = $5_1 + 56 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1 + 48 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1 + 40 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1 + 32 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1 + 24 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1 + 16 | 0;
   i64toi32_i32$0 = -1;
   HEAP32[i64toi32_i32$1 >> 2] = -1;
   HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1;
   i64toi32_i32$0 = -1;
   HEAP32[($5_1 + 8 | 0) >> 2] = -1;
   HEAP32[($5_1 + 12 | 0) >> 2] = i64toi32_i32$0;
   i64toi32_i32$1 = $5_1;
   i64toi32_i32$0 = -1;
   HEAP32[$5_1 >> 2] = -1;
   HEAP32[($5_1 + 4 | 0) >> 2] = i64toi32_i32$0;
   $10 = ($3_1 + $4_1 | 0) + -16 | 0;
   $8_1 = $3_1 + 1 | 0;
   $11 = $8_1 + $7_1 | 0;
   label$2 : {
    if (!$1_1) {
     break label$2
    }
    $12 = ($9_1 | 0) == (1 | 0) ? 13 : 15;
    $3_1 = $0_1;
    $9_1 = 0;
    $13 = 0;
    $14 = 0;
    $4_1 = 0;
    $6_1 = 0;
    label$3 : while (1) {
     label$4 : {
      if ($11 >>> 0 <= $10 >>> 0) {
       break label$4
      }
      $6_1 = -2;
      break label$1;
     }
     label$5 : {
      label$6 : {
       $7_1 = HEAPU8[$8_1 >> 0] | 0;
       if ($7_1 >>> 0 > 239 >>> 0) {
        break label$6
       }
       $15 = ($5_1 + 64 | 0) + ((((($7_1 >>> 4 | 0) ^ -1 | 0) + $6_1 | 0) & 15 | 0) << 3 | 0) | 0;
       $16 = HEAP32[($15 + 4 | 0) >> 2] | 0;
       $17 = HEAP32[$15 >> 2] | 0;
       label$7 : {
        $15 = $7_1 & 15 | 0;
        if ($15 >>> 0 >= $12 >>> 0) {
         break label$7
        }
        $7_1 = (wasm2js_i32$0 = HEAP32[($5_1 + (((($7_1 ^ -1 | 0) + $4_1 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $9_1, wasm2js_i32$2 = $15, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
        $15 = !$15;
        label$8 : {
         label$9 : {
          if (($2_1 | 0) != (2 | 0)) {
           break label$9
          }
          HEAP16[$0_1 >> 1] = $17;
          HEAP16[($0_1 + 4 | 0) >> 1] = $7_1;
          HEAP16[($0_1 + 2 | 0) >> 1] = $16;
          break label$8;
         }
         HEAP32[$3_1 >> 2] = $17;
         HEAP32[($3_1 + 8 | 0) >> 2] = $7_1;
         HEAP32[($3_1 + 4 | 0) >> 2] = $16;
        }
        $9_1 = $9_1 + $15 | 0;
        $18 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
        HEAP32[$18 >> 2] = $7_1;
        HEAP32[($18 + 4 | 0) >> 2] = $16;
        HEAP32[($5_1 + ($4_1 << 2 | 0) | 0) >> 2] = $7_1;
        $6_1 = ($6_1 + 1 | 0) & 15 | 0;
        $16 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
        HEAP32[$16 >> 2] = $17;
        HEAP32[($16 + 4 | 0) >> 2] = $7_1;
        $4_1 = $4_1 + $15 | 0;
        $6_1 = $6_1 + 1 | 0;
        break label$5;
       }
       label$10 : {
        label$11 : {
         if (($15 | 0) == (15 | 0)) {
          break label$11
         }
         $13 = (($13 + $15 | 0) + ($15 ^ -4 | 0) | 0) + 1 | 0;
         break label$10;
        }
        $15 = HEAP8[$11 >> 0] | 0;
        $7_1 = $15 & 255 | 0;
        label$12 : {
         label$13 : {
          if (($15 | 0) <= (-1 | 0)) {
           break label$13
          }
          $11 = $11 + 1 | 0;
          break label$12;
         }
         $15 = HEAP8[($11 + 1 | 0) >> 0] | 0;
         $7_1 = ($15 & 127 | 0) << 7 | 0 | ($7_1 & 127 | 0) | 0;
         label$14 : {
          if (($15 | 0) <= (-1 | 0)) {
           break label$14
          }
          $11 = $11 + 2 | 0;
          break label$12;
         }
         $15 = HEAP8[($11 + 2 | 0) >> 0] | 0;
         $7_1 = ($15 & 127 | 0) << 14 | 0 | $7_1 | 0;
         label$15 : {
          if (($15 | 0) <= (-1 | 0)) {
           break label$15
          }
          $11 = $11 + 3 | 0;
          break label$12;
         }
         $15 = HEAP8[($11 + 3 | 0) >> 0] | 0;
         $7_1 = ($15 & 127 | 0) << 21 | 0 | $7_1 | 0;
         label$16 : {
          if (($15 | 0) <= (-1 | 0)) {
           break label$16
          }
          $11 = $11 + 4 | 0;
          break label$12;
         }
         $7_1 = (HEAPU8[($11 + 4 | 0) >> 0] | 0) << 28 | 0 | $7_1 | 0;
         $11 = $11 + 5 | 0;
        }
        $13 = (($7_1 >>> 1 | 0) ^ (0 - ($7_1 & 1 | 0) | 0) | 0) + $13 | 0;
       }
       label$17 : {
        label$18 : {
         if (($2_1 | 0) != (2 | 0)) {
          break label$18
         }
         HEAP16[$0_1 >> 1] = $17;
         HEAP16[($0_1 + 4 | 0) >> 1] = $13;
         HEAP16[($0_1 + 2 | 0) >> 1] = $16;
         break label$17;
        }
        HEAP32[$3_1 >> 2] = $17;
        HEAP32[($3_1 + 8 | 0) >> 2] = $13;
        HEAP32[($3_1 + 4 | 0) >> 2] = $16;
       }
       $7_1 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
       HEAP32[$7_1 >> 2] = $13;
       HEAP32[($7_1 + 4 | 0) >> 2] = $16;
       HEAP32[($5_1 + ($4_1 << 2 | 0) | 0) >> 2] = $13;
       $6_1 = ($6_1 + 1 | 0) & 15 | 0;
       $7_1 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
       HEAP32[$7_1 >> 2] = $17;
       HEAP32[($7_1 + 4 | 0) >> 2] = $13;
       $4_1 = $4_1 + 1 | 0;
       $6_1 = $6_1 + 1 | 0;
       break label$5;
      }
      label$19 : {
       if ($7_1 >>> 0 > 253 >>> 0) {
        break label$19
       }
       $15 = HEAPU8[($10 + ($7_1 & 15 | 0) | 0) >> 0] | 0;
       $16 = $15 >>> 4 | 0;
       $17 = $9_1 + 1 | 0;
       $7_1 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($4_1 - $16 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $17, wasm2js_i32$2 = $16, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
       $18 = !$16;
       $17 = $17 + $18 | 0;
       $16 = $15 & 15 | 0;
       $15 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($4_1 - $15 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $17, wasm2js_i32$2 = $16, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
       $16 = !$16;
       label$20 : {
        label$21 : {
         if (($2_1 | 0) != (2 | 0)) {
          break label$21
         }
         HEAP16[$0_1 >> 1] = $9_1;
         HEAP16[($0_1 + 4 | 0) >> 1] = $15;
         HEAP16[($0_1 + 2 | 0) >> 1] = $7_1;
         break label$20;
        }
        HEAP32[$3_1 >> 2] = $9_1;
        HEAP32[($3_1 + 8 | 0) >> 2] = $15;
        HEAP32[($3_1 + 4 | 0) >> 2] = $7_1;
       }
       HEAP32[($5_1 + ($4_1 << 2 | 0) | 0) >> 2] = $9_1;
       $19 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
       HEAP32[$19 >> 2] = $7_1;
       HEAP32[($19 + 4 | 0) >> 2] = $9_1;
       $4_1 = $4_1 + 1 | 0;
       HEAP32[($5_1 + (($4_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $7_1;
       $19 = ($5_1 + 64 | 0) + ((($6_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0;
       HEAP32[$19 >> 2] = $15;
       HEAP32[($19 + 4 | 0) >> 2] = $7_1;
       $4_1 = ($4_1 + $18 | 0) & 15 | 0;
       HEAP32[($5_1 + ($4_1 << 2 | 0) | 0) >> 2] = $15;
       $6_1 = ($6_1 + 2 | 0) & 15 | 0;
       $7_1 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
       HEAP32[$7_1 >> 2] = $9_1;
       HEAP32[($7_1 + 4 | 0) >> 2] = $15;
       $6_1 = $6_1 + 1 | 0;
       $4_1 = $4_1 + $16 | 0;
       $9_1 = $17 + $16 | 0;
       break label$5;
      }
      $19 = HEAPU8[$11 >> 0] | 0;
      $16 = $19 ? $9_1 : 0;
      $20 = ($7_1 | 0) == (254 | 0);
      $7_1 = $16 + $20 | 0;
      $17 = $19 & 15 | 0;
      label$22 : {
       label$23 : {
        $18 = $19 >>> 4 | 0;
        if ($18) {
         break label$23
        }
        $15 = $7_1 + 1 | 0;
        break label$22;
       }
       $15 = $7_1;
       $7_1 = HEAP32[($5_1 + ((($4_1 - $18 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0;
      }
      label$24 : {
       label$25 : {
        if ($17) {
         break label$25
        }
        $9_1 = $15 + 1 | 0;
        break label$24;
       }
       $9_1 = $15;
       $15 = HEAP32[($5_1 + ((($4_1 - $19 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0;
      }
      label$26 : {
       label$27 : {
        if (!$20) {
         break label$27
        }
        $19 = $11 + 1 | 0;
        break label$26;
       }
       $19 = HEAP8[($11 + 1 | 0) >> 0] | 0;
       $16 = $19 & 255 | 0;
       label$28 : {
        label$29 : {
         if (($19 | 0) <= (-1 | 0)) {
          break label$29
         }
         $19 = $11 + 2 | 0;
         break label$28;
        }
        $19 = HEAP8[($11 + 2 | 0) >> 0] | 0;
        $16 = ($19 & 127 | 0) << 7 | 0 | ($16 & 127 | 0) | 0;
        label$30 : {
         if (($19 | 0) <= (-1 | 0)) {
          break label$30
         }
         $19 = $11 + 3 | 0;
         break label$28;
        }
        $19 = HEAP8[($11 + 3 | 0) >> 0] | 0;
        $16 = ($19 & 127 | 0) << 14 | 0 | $16 | 0;
        label$31 : {
         if (($19 | 0) <= (-1 | 0)) {
          break label$31
         }
         $19 = $11 + 4 | 0;
         break label$28;
        }
        $19 = HEAP8[($11 + 4 | 0) >> 0] | 0;
        $16 = ($19 & 127 | 0) << 21 | 0 | $16 | 0;
        label$32 : {
         if (($19 | 0) <= (-1 | 0)) {
          break label$32
         }
         $19 = $11 + 5 | 0;
         break label$28;
        }
        $19 = $11 + 6 | 0;
        $16 = (HEAPU8[($11 + 5 | 0) >> 0] | 0) << 28 | 0 | $16 | 0;
       }
       $13 = (($16 >>> 1 | 0) ^ (0 - ($16 & 1 | 0) | 0) | 0) + $13 | 0;
       $16 = $13;
      }
      label$33 : {
       label$34 : {
        if (($18 | 0) == (15 | 0)) {
         break label$34
        }
        $20 = $19;
        break label$33;
       }
       $11 = HEAP8[$19 >> 0] | 0;
       $7_1 = $11 & 255 | 0;
       label$35 : {
        label$36 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$36
         }
         $20 = $19 + 1 | 0;
         break label$35;
        }
        $11 = HEAP8[($19 + 1 | 0) >> 0] | 0;
        $7_1 = ($11 & 127 | 0) << 7 | 0 | ($7_1 & 127 | 0) | 0;
        label$37 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$37
         }
         $20 = $19 + 2 | 0;
         break label$35;
        }
        $11 = HEAP8[($19 + 2 | 0) >> 0] | 0;
        $7_1 = ($11 & 127 | 0) << 14 | 0 | $7_1 | 0;
        label$38 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$38
         }
         $20 = $19 + 3 | 0;
         break label$35;
        }
        $11 = HEAP8[($19 + 3 | 0) >> 0] | 0;
        $7_1 = ($11 & 127 | 0) << 21 | 0 | $7_1 | 0;
        label$39 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$39
         }
         $20 = $19 + 4 | 0;
         break label$35;
        }
        $20 = $19 + 5 | 0;
        $7_1 = (HEAPU8[($19 + 4 | 0) >> 0] | 0) << 28 | 0 | $7_1 | 0;
       }
       $13 = (($7_1 >>> 1 | 0) ^ (0 - ($7_1 & 1 | 0) | 0) | 0) + $13 | 0;
       $7_1 = $13;
      }
      label$40 : {
       label$41 : {
        if (($17 | 0) == (15 | 0)) {
         break label$41
        }
        $11 = $20;
        break label$40;
       }
       $11 = HEAP8[$20 >> 0] | 0;
       $15 = $11 & 255 | 0;
       label$42 : {
        label$43 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$43
         }
         $11 = $20 + 1 | 0;
         break label$42;
        }
        $11 = HEAP8[($20 + 1 | 0) >> 0] | 0;
        $15 = ($11 & 127 | 0) << 7 | 0 | ($15 & 127 | 0) | 0;
        label$44 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$44
         }
         $11 = $20 + 2 | 0;
         break label$42;
        }
        $11 = HEAP8[($20 + 2 | 0) >> 0] | 0;
        $15 = ($11 & 127 | 0) << 14 | 0 | $15 | 0;
        label$45 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$45
         }
         $11 = $20 + 3 | 0;
         break label$42;
        }
        $11 = HEAP8[($20 + 3 | 0) >> 0] | 0;
        $15 = ($11 & 127 | 0) << 21 | 0 | $15 | 0;
        label$46 : {
         if (($11 | 0) <= (-1 | 0)) {
          break label$46
         }
         $11 = $20 + 4 | 0;
         break label$42;
        }
        $11 = $20 + 5 | 0;
        $15 = (HEAPU8[($20 + 4 | 0) >> 0] | 0) << 28 | 0 | $15 | 0;
       }
       $13 = (($15 >>> 1 | 0) ^ (0 - ($15 & 1 | 0) | 0) | 0) + $13 | 0;
       $15 = $13;
      }
      label$47 : {
       label$48 : {
        if (($2_1 | 0) != (2 | 0)) {
         break label$48
        }
        HEAP16[$0_1 >> 1] = $16;
        HEAP16[($0_1 + 4 | 0) >> 1] = $15;
        HEAP16[($0_1 + 2 | 0) >> 1] = $7_1;
        break label$47;
       }
       HEAP32[$3_1 >> 2] = $16;
       HEAP32[($3_1 + 8 | 0) >> 2] = $15;
       HEAP32[($3_1 + 4 | 0) >> 2] = $7_1;
      }
      $19 = ($5_1 + 64 | 0) + ($6_1 << 3 | 0) | 0;
      HEAP32[$19 >> 2] = $7_1;
      HEAP32[($19 + 4 | 0) >> 2] = $16;
      HEAP32[($5_1 + ($4_1 << 2 | 0) | 0) >> 2] = $16;
      $19 = ($5_1 + 64 | 0) + ((($6_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0;
      HEAP32[$19 >> 2] = $15;
      HEAP32[($19 + 4 | 0) >> 2] = $7_1;
      $4_1 = $4_1 + 1 | 0;
      HEAP32[($5_1 + (($4_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $7_1;
      $7_1 = ($5_1 + 64 | 0) + ((($6_1 + 2 | 0) & 15 | 0) << 3 | 0) | 0;
      HEAP32[$7_1 >> 2] = $16;
      HEAP32[($7_1 + 4 | 0) >> 2] = $15;
      $4_1 = $4_1 + (!$18 | ($18 | 0) == (15 | 0) | 0) | 0;
      HEAP32[($5_1 + (($4_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $15;
      $4_1 = $4_1 + (!$17 | ($17 | 0) == (15 | 0) | 0) | 0;
      $6_1 = $6_1 + 3 | 0;
     }
     $8_1 = $8_1 + 1 | 0;
     $0_1 = $0_1 + 6 | 0;
     $3_1 = $3_1 + 12 | 0;
     $6_1 = $6_1 & 15 | 0;
     $4_1 = $4_1 & 15 | 0;
     $14 = $14 + 3 | 0;
     if ($14 >>> 0 < $1_1 >>> 0) {
      continue label$3
     }
     break label$3;
    };
   }
   $6_1 = ($11 | 0) == ($10 | 0) ? 0 : -3;
  }
  global$0 = $5_1 + 192 | 0;
  return $6_1 | 0;
 }
 
 function $3($0_1, $1_1, $2_1, $3_1, $4_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  $3_1 = $3_1 | 0;
  $4_1 = $4_1 | 0;
  var $6_1 = 0, $5_1 = 0, $164 = 0;
  $5_1 = global$0 - 16 | 0;
  $6_1 = -2;
  label$1 : {
   if (($1_1 + 5 | 0) >>> 0 > $4_1 >>> 0) {
    break label$1
   }
   $6_1 = -1;
   if (((HEAPU8[$3_1 >> 0] | 0) & 254 | 0 | 0) != (208 | 0)) {
    break label$1
   }
   HEAP32[($5_1 + 8 | 0) >> 2] = 0;
   HEAP32[($5_1 + 12 | 0) >> 2] = 0;
   $6_1 = $3_1 + 1 | 0;
   $3_1 = ($3_1 + $4_1 | 0) + -4 | 0;
   label$2 : {
    if (!$1_1) {
     break label$2
    }
    label$3 : {
     if (($2_1 | 0) == (2 | 0)) {
      break label$3
     }
     label$4 : while (1) {
      label$5 : {
       if ($6_1 >>> 0 < $3_1 >>> 0) {
        break label$5
       }
       return -2 | 0;
      }
      $2_1 = HEAP8[$6_1 >> 0] | 0;
      $4_1 = $2_1 & 255 | 0;
      label$6 : {
       label$7 : {
        if (($2_1 | 0) <= (-1 | 0)) {
         break label$7
        }
        $6_1 = $6_1 + 1 | 0;
        break label$6;
       }
       $2_1 = HEAP8[($6_1 + 1 | 0) >> 0] | 0;
       $4_1 = ($2_1 & 127 | 0) << 7 | 0 | ($4_1 & 127 | 0) | 0;
       label$8 : {
        if (($2_1 | 0) <= (-1 | 0)) {
         break label$8
        }
        $6_1 = $6_1 + 2 | 0;
        break label$6;
       }
       $2_1 = HEAP8[($6_1 + 2 | 0) >> 0] | 0;
       $4_1 = ($2_1 & 127 | 0) << 14 | 0 | $4_1 | 0;
       label$9 : {
        if (($2_1 | 0) <= (-1 | 0)) {
         break label$9
        }
        $6_1 = $6_1 + 3 | 0;
        break label$6;
       }
       $2_1 = HEAP8[($6_1 + 3 | 0) >> 0] | 0;
       $4_1 = ($2_1 & 127 | 0) << 21 | 0 | $4_1 | 0;
       label$10 : {
        if (($2_1 | 0) <= (-1 | 0)) {
         break label$10
        }
        $6_1 = $6_1 + 4 | 0;
        break label$6;
       }
       $4_1 = (HEAPU8[($6_1 + 4 | 0) >> 0] | 0) << 28 | 0 | $4_1 | 0;
       $6_1 = $6_1 + 5 | 0;
      }
      $2_1 = $5_1 + 8 | 0 | (($4_1 & 1 | 0) << 2 | 0) | 0;
      $4_1 = (($4_1 >>> 2 | 0) ^ (0 - (($4_1 >>> 1 | 0) & 1 | 0) | 0) | 0) + (HEAP32[$2_1 >> 2] | 0) | 0;
      HEAP32[$2_1 >> 2] = $4_1;
      HEAP32[$0_1 >> 2] = $4_1;
      $0_1 = $0_1 + 4 | 0;
      $1_1 = $1_1 + -1 | 0;
      if ($1_1) {
       continue label$4
      }
      break label$2;
     };
    }
    label$11 : while (1) {
     label$12 : {
      if ($6_1 >>> 0 < $3_1 >>> 0) {
       break label$12
      }
      return -2 | 0;
     }
     $2_1 = HEAP8[$6_1 >> 0] | 0;
     $4_1 = $2_1 & 255 | 0;
     label$13 : {
      label$14 : {
       if (($2_1 | 0) <= (-1 | 0)) {
        break label$14
       }
       $6_1 = $6_1 + 1 | 0;
       break label$13;
      }
      $2_1 = HEAP8[($6_1 + 1 | 0) >> 0] | 0;
      $4_1 = ($2_1 & 127 | 0) << 7 | 0 | ($4_1 & 127 | 0) | 0;
      label$15 : {
       if (($2_1 | 0) <= (-1 | 0)) {
        break label$15
       }
       $6_1 = $6_1 + 2 | 0;
       break label$13;
      }
      $2_1 = HEAP8[($6_1 + 2 | 0) >> 0] | 0;
      $4_1 = ($2_1 & 127 | 0) << 14 | 0 | $4_1 | 0;
      label$16 : {
       if (($2_1 | 0) <= (-1 | 0)) {
        break label$16
       }
       $6_1 = $6_1 + 3 | 0;
       break label$13;
      }
      $2_1 = HEAP8[($6_1 + 3 | 0) >> 0] | 0;
      $4_1 = ($2_1 & 127 | 0) << 21 | 0 | $4_1 | 0;
      label$17 : {
       if (($2_1 | 0) <= (-1 | 0)) {
        break label$17
       }
       $6_1 = $6_1 + 4 | 0;
       break label$13;
      }
      $4_1 = (HEAPU8[($6_1 + 4 | 0) >> 0] | 0) << 28 | 0 | $4_1 | 0;
      $6_1 = $6_1 + 5 | 0;
     }
     $164 = ($4_1 >>> 2 | 0) ^ (0 - (($4_1 >>> 1 | 0) & 1 | 0) | 0) | 0;
     $4_1 = $5_1 + 8 | 0 | (($4_1 & 1 | 0) << 2 | 0) | 0;
     $2_1 = $164 + (HEAP32[$4_1 >> 2] | 0) | 0;
     HEAP16[$0_1 >> 1] = $2_1;
     HEAP32[$4_1 >> 2] = $2_1;
     $0_1 = $0_1 + 2 | 0;
     $1_1 = $1_1 + -1 | 0;
     if ($1_1) {
      continue label$11
     }
     break label$11;
    };
   }
   $6_1 = ($6_1 | 0) == ($3_1 | 0) ? 0 : -3;
  }
  return $6_1 | 0;
 }
 
 function $4($0_1, $1_1, $2_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  var $8_1 = Math_fround(0), $10 = Math_fround(0), $4_1 = Math_fround(0), $7_1 = Math_fround(0), $3_1 = 0, $5_1 = 0, $6_1 = 0, $9_1 = 0, $11 = Math_fround(0);
  label$1 : {
   label$2 : {
    if (($2_1 | 0) != (4 | 0)) {
     break label$2
    }
    if (!$1_1) {
     break label$1
    }
    label$3 : while (1) {
     label$4 : {
      label$5 : {
       $2_1 = $0_1 + 2 | 0;
       $3_1 = HEAP8[$0_1 >> 0] | 0;
       $4_1 = Math_fround($3_1 | 0);
       $5_1 = $0_1 + 1 | 0;
       $6_1 = HEAP8[$5_1 >> 0] | 0;
       $7_1 = Math_fround($6_1 | 0);
       $8_1 = Math_fround(Math_fround(Math_fround(HEAP8[$2_1 >> 0] | 0 | 0) - Math_fround(Math_abs($4_1))) - Math_fround(Math_abs($7_1)));
       $9_1 = $8_1 >= Math_fround(0.0);
       $10 = $9_1 ? Math_fround(0.0) : $8_1;
       $11 = Math_fround(-$10);
       $4_1 = Math_fround((($3_1 | 0) > (-1 | 0) ? $10 : $11) + $4_1);
       $10 = Math_fround((($6_1 | 0) > (-1 | 0) ? $10 : $11) + $7_1);
       $7_1 = Math_fround(Math_fround(127.0) / Math_fround(Math_sqrt(Math_fround(Math_fround($8_1 * $8_1) + Math_fround(Math_fround($4_1 * $4_1) + Math_fround($10 * $10))))));
       $8_1 = Math_fround(($9_1 ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($8_1 * $7_1));
       if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
        break label$5
       }
       $3_1 = ~~$8_1;
       break label$4;
      }
      $3_1 = -2147483648;
     }
     HEAP8[$2_1 >> 0] = $3_1;
     label$6 : {
      label$7 : {
       $8_1 = Math_fround(($10 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($10 * $7_1));
       if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
        break label$7
       }
       $2_1 = ~~$8_1;
       break label$6;
      }
      $2_1 = -2147483648;
     }
     HEAP8[$5_1 >> 0] = $2_1;
     label$8 : {
      label$9 : {
       $8_1 = Math_fround(($4_1 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($4_1 * $7_1));
       if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
        break label$9
       }
       $2_1 = ~~$8_1;
       break label$8;
      }
      $2_1 = -2147483648;
     }
     HEAP8[$0_1 >> 0] = $2_1;
     $0_1 = $0_1 + 4 | 0;
     $1_1 = $1_1 + -1 | 0;
     if ($1_1) {
      continue label$3
     }
     break label$1;
    };
   }
   if (!$1_1) {
    break label$1
   }
   label$10 : while (1) {
    label$11 : {
     label$12 : {
      $2_1 = $0_1 + 4 | 0;
      $3_1 = HEAP16[$0_1 >> 1] | 0;
      $4_1 = Math_fround($3_1 | 0);
      $5_1 = $0_1 + 2 | 0;
      $6_1 = HEAP16[$5_1 >> 1] | 0;
      $7_1 = Math_fround($6_1 | 0);
      $8_1 = Math_fround(Math_fround(Math_fround(HEAP16[$2_1 >> 1] | 0 | 0) - Math_fround(Math_abs($4_1))) - Math_fround(Math_abs($7_1)));
      $9_1 = $8_1 >= Math_fround(0.0);
      $10 = $9_1 ? Math_fround(0.0) : $8_1;
      $11 = Math_fround(-$10);
      $4_1 = Math_fround((($3_1 | 0) > (-1 | 0) ? $10 : $11) + $4_1);
      $10 = Math_fround((($6_1 | 0) > (-1 | 0) ? $10 : $11) + $7_1);
      $7_1 = Math_fround(Math_fround(32767.0) / Math_fround(Math_sqrt(Math_fround(Math_fround($8_1 * $8_1) + Math_fround(Math_fround($4_1 * $4_1) + Math_fround($10 * $10))))));
      $8_1 = Math_fround(($9_1 ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($8_1 * $7_1));
      if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
       break label$12
      }
      $3_1 = ~~$8_1;
      break label$11;
     }
     $3_1 = -2147483648;
    }
    HEAP16[$2_1 >> 1] = $3_1;
    label$13 : {
     label$14 : {
      $8_1 = Math_fround(($10 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($10 * $7_1));
      if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
       break label$14
      }
      $2_1 = ~~$8_1;
      break label$13;
     }
     $2_1 = -2147483648;
    }
    HEAP16[$5_1 >> 1] = $2_1;
    label$15 : {
     label$16 : {
      $8_1 = Math_fround(($4_1 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)) + Math_fround($4_1 * $7_1));
      if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
       break label$16
      }
      $2_1 = ~~$8_1;
      break label$15;
     }
     $2_1 = -2147483648;
    }
    HEAP16[$0_1 >> 1] = $2_1;
    $0_1 = $0_1 + 8 | 0;
    $1_1 = $1_1 + -1 | 0;
    if ($1_1) {
     continue label$10
    }
    break label$10;
   };
  }
 }
 
 function $5($0_1, $1_1, $2_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  var $7_1 = Math_fround(0), $6_1 = Math_fround(0), $8_1 = Math_fround(0), $10 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $12 = Math_fround(0), $11 = 0, $9_1 = 0;
  label$1 : {
   if (!$1_1) {
    break label$1
   }
   $3_1 = 0;
   $4_1 = $0_1;
   label$2 : while (1) {
    label$3 : {
     label$4 : {
      $5_1 = HEAP16[($4_1 + 6 | 0) >> 1] | 0;
      $6_1 = Math_fround(Math_fround(.7071067690849304) / Math_fround($5_1 | 3 | 0 | 0));
      $7_1 = Math_fround($6_1 * Math_fround(HEAP16[$4_1 >> 1] | 0 | 0));
      $8_1 = Math_fround(Math_fround($7_1 * Math_fround(32767.0)) + ($7_1 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)));
      if (!(Math_fround(Math_abs($8_1)) < Math_fround(2147483648.0))) {
       break label$4
      }
      $9_1 = ~~$8_1;
      break label$3;
     }
     $9_1 = -2147483648;
    }
    $10 = HEAP16[($4_1 + 4 | 0) >> 1] | 0;
    $11 = HEAP16[($4_1 + 2 | 0) >> 1] | 0;
    HEAP16[($0_1 + ((($5_1 + 1 | 0) & 3 | 0 | $3_1 | 0) << 1 | 0) | 0) >> 1] = $9_1;
    label$5 : {
     label$6 : {
      $8_1 = Math_fround($6_1 * Math_fround($11 | 0));
      $12 = Math_fround(Math_fround($8_1 * Math_fround(32767.0)) + ($8_1 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)));
      if (!(Math_fround(Math_abs($12)) < Math_fround(2147483648.0))) {
       break label$6
      }
      $11 = ~~$12;
      break label$5;
     }
     $11 = -2147483648;
    }
    HEAP16[($0_1 + ((($5_1 + 2 | 0) & 3 | 0 | $3_1 | 0) << 1 | 0) | 0) >> 1] = $11;
    label$7 : {
     label$8 : {
      $6_1 = Math_fround($6_1 * Math_fround($10 | 0));
      $12 = Math_fround(Math_fround($6_1 * Math_fround(32767.0)) + ($6_1 >= Math_fround(0.0) ? Math_fround(.5) : Math_fround(-.5)));
      if (!(Math_fround(Math_abs($12)) < Math_fround(2147483648.0))) {
       break label$8
      }
      $10 = ~~$12;
      break label$7;
     }
     $10 = -2147483648;
    }
    HEAP16[($0_1 + ((($5_1 + -1 | 0) & 3 | 0 | $3_1 | 0) << 1 | 0) | 0) >> 1] = $10;
    label$9 : {
     label$10 : {
      $7_1 = Math_fround(Math_fround(Math_fround(Math_fround(1.0) - Math_fround($7_1 * $7_1)) - Math_fround($8_1 * $8_1)) - Math_fround($6_1 * $6_1));
      $7_1 = Math_fround(Math_fround(Math_fround(Math_sqrt($7_1 >= Math_fround(0.0) ? $7_1 : Math_fround(0.0))) * Math_fround(32767.0)) + Math_fround(.5));
      if (!(Math_fround(Math_abs($7_1)) < Math_fround(2147483648.0))) {
       break label$10
      }
      $10 = ~~$7_1;
      break label$9;
     }
     $10 = -2147483648;
    }
    HEAP16[($0_1 + (($5_1 & 3 | 0 | $3_1 | 0) << 1 | 0) | 0) >> 1] = $10;
    $4_1 = $4_1 + 8 | 0;
    $3_1 = $3_1 + 4 | 0;
    $1_1 = $1_1 + -1 | 0;
    if ($1_1) {
     continue label$2
    }
    break label$2;
   };
  }
 }
 
 function $6($0_1, $1_1, $2_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  label$1 : {
   $1_1 = Math_imul($2_1 >>> 2 | 0, $1_1);
   if (!$1_1) {
    break label$1
   }
   label$2 : while (1) {
    $2_1 = HEAP32[$0_1 >> 2] | 0;
    HEAPF32[$0_1 >> 2] = Math_fround(Math_fround(($2_1 << 8 | 0) >> 8 | 0 | 0) * (wasm2js_scratch_store_i32(2, (($2_1 >> 24 | 0) << 23 | 0) + 1065353216 | 0), wasm2js_scratch_load_f32()));
    $0_1 = $0_1 + 4 | 0;
    $1_1 = $1_1 + -1 | 0;
    if ($1_1) {
     continue label$2
    }
    break label$2;
   };
  }
 }
 
 function $7($0_1) {
  $0_1 = $0_1 | 0;
  var $1_1 = 0, $2_1 = 0, $3_1 = 0;
  $1_1 = HEAP32[(0 + 1024 | 0) >> 2] | 0;
  $0_1 = $1_1 + (($0_1 + 3 | 0) & -4 | 0) | 0;
  HEAP32[(0 + 1024 | 0) >> 2] = $0_1;
  label$1 : {
   label$2 : {
    $2_1 = __wasm_memory_size() << 16 | 0;
    if ($0_1 >>> 0 <= $2_1 >>> 0) {
     break label$2
    }
    $3_1 = -1;
    if ((__wasm_memory_grow((($0_1 - $2_1 | 0) + 65535 | 0) >>> 16 | 0 | 0) | 0) == (-1 | 0)) {
     break label$1
    }
   }
   $3_1 = $1_1;
  }
  return $3_1 | 0;
 }
 
 function $8($0_1, $1_1, $2_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  var $3_1 = 0;
  label$1 : {
   label$2 : {
    if (!(($1_1 | $0_1 | 0) & 3 | 0)) {
     break label$2
    }
    $3_1 = $0_1;
    break label$1;
   }
   label$3 : {
    label$4 : {
     if ($2_1 >>> 0 >= 16 >>> 0) {
      break label$4
     }
     $3_1 = $0_1;
     break label$3;
    }
    $3_1 = $0_1;
    label$5 : while (1) {
     HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0;
     HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0;
     HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($1_1 + 8 | 0) >> 2] | 0;
     HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[($1_1 + 12 | 0) >> 2] | 0;
     $3_1 = $3_1 + 16 | 0;
     $1_1 = $1_1 + 16 | 0;
     $2_1 = $2_1 + -16 | 0;
     if ($2_1 >>> 0 > 15 >>> 0) {
      continue label$5
     }
     break label$5;
    };
   }
   if ($2_1 >>> 0 < 4 >>> 0) {
    break label$1
   }
   label$6 : while (1) {
    HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0;
    $1_1 = $1_1 + 4 | 0;
    $3_1 = $3_1 + 4 | 0;
    $2_1 = $2_1 + -4 | 0;
    if ($2_1 >>> 0 > 3 >>> 0) {
     continue label$6
    }
    break label$6;
   };
  }
  label$7 : {
   if (!$2_1) {
    break label$7
   }
   label$8 : while (1) {
    HEAP8[$3_1 >> 0] = HEAPU8[$1_1 >> 0] | 0;
    $3_1 = $3_1 + 1 | 0;
    $1_1 = $1_1 + 1 | 0;
    $2_1 = $2_1 + -1 | 0;
    if ($2_1) {
     continue label$8
    }
    break label$8;
   };
  }
  return $0_1 | 0;
 }
 
 function $9($0_1, $1_1, $2_1) {
  $0_1 = $0_1 | 0;
  $1_1 = $1_1 | 0;
  $2_1 = $2_1 | 0;
  var $3_1 = 0, $4_1 = 0;
  label$1 : {
   label$2 : {
    if (!($0_1 & 3 | 0)) {
     break label$2
    }
    $3_1 = $0_1;
    break label$1;
   }
   $4_1 = Math_imul($1_1 & 255 | 0, 16843009);
   label$3 : {
    label$4 : {
     if ($2_1 >>> 0 >= 16 >>> 0) {
      break label$4
     }
     $3_1 = $0_1;
     break label$3;
    }
    $3_1 = $0_1;
    label$5 : while (1) {
     HEAP32[$3_1 >> 2] = $4_1;
     HEAP32[($3_1 + 12 | 0) >> 2] = $4_1;
     HEAP32[($3_1 + 8 | 0) >> 2] = $4_1;
     HEAP32[($3_1 + 4 | 0) >> 2] = $4_1;
     $3_1 = $3_1 + 16 | 0;
     $2_1 = $2_1 + -16 | 0;
     if ($2_1 >>> 0 > 15 >>> 0) {
      continue label$5
     }
     break label$5;
    };
   }
   if ($2_1 >>> 0 < 4 >>> 0) {
    break label$1
   }
   label$6 : while (1) {
    HEAP32[$3_1 >> 2] = $4_1;
    $3_1 = $3_1 + 4 | 0;
    $2_1 = $2_1 + -4 | 0;
    if ($2_1 >>> 0 > 3 >>> 0) {
     continue label$6
    }
    break label$6;
   };
  }
  label$7 : {
   if (!$2_1) {
    break label$7
   }
   label$8 : while (1) {
    HEAP8[$3_1 >> 0] = $1_1;
    $3_1 = $3_1 + 1 | 0;
    $2_1 = $2_1 + -1 | 0;
    if ($2_1) {
     continue label$8
    }
    break label$8;
   };
  }
  return $0_1 | 0;
 }
 
 bufferView = HEAPU8;
 initActiveSegments(env);
 function __wasm_memory_size() {
  return buffer.byteLength / 65536 | 0;
 }
 
 function __wasm_memory_grow(pagesToAdd) {
  pagesToAdd = pagesToAdd | 0;
  var oldPages = __wasm_memory_size() | 0;
  var newPages = oldPages + pagesToAdd | 0;
  if ((oldPages < newPages) && (newPages < 65536)) {
   var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536));
   var newHEAP8 = new Int8Array(newBuffer);
   newHEAP8.set(HEAP8);
   HEAP8 = new Int8Array(newBuffer);
   HEAP16 = new Int16Array(newBuffer);
   HEAP32 = new Int32Array(newBuffer);
   HEAPU8 = new Uint8Array(newBuffer);
   HEAPU16 = new Uint16Array(newBuffer);
   HEAPU32 = new Uint32Array(newBuffer);
   HEAPF32 = new Float32Array(newBuffer);
   HEAPF64 = new Float64Array(newBuffer);
   buffer = newBuffer;
   bufferView = HEAPU8;
  }
  return oldPages;
 }
 
 return {
  "memory": Object.create(Object.prototype, {
   "grow": {
    "value": __wasm_memory_grow
   }, 
   "buffer": {
    "get": function () {
     return buffer;
    }
    
   }
  }), 
  "__wasm_call_ctors": $0, 
  "meshopt_decodeVertexBuffer": $1, 
  "meshopt_decodeIndexBuffer": $2, 
  "meshopt_decodeIndexSequence": $3, 
  "meshopt_decodeFilterOct": $4, 
  "meshopt_decodeFilterQuat": $5, 
  "meshopt_decodeFilterExp": $6, 
  "sbrk": $7
 };
}

var retasmFunc = asmFunc(  { abort: function() { throw new Error('abort'); }
  });
export var memory = retasmFunc.memory;
export var __wasm_call_ctors = retasmFunc.__wasm_call_ctors;
export var meshopt_decodeVertexBuffer = retasmFunc.meshopt_decodeVertexBuffer;
export var meshopt_decodeIndexBuffer = retasmFunc.meshopt_decodeIndexBuffer;
export var meshopt_decodeIndexSequence = retasmFunc.meshopt_decodeIndexSequence;
export var meshopt_decodeFilterOct = retasmFunc.meshopt_decodeFilterOct;
export var meshopt_decodeFilterQuat = retasmFunc.meshopt_decodeFilterQuat;
export var meshopt_decodeFilterExp = retasmFunc.meshopt_decodeFilterExp;
export var sbrk = retasmFunc.sbrk;
